package com.fmm.medium;

public class JumpGame {

    /**
     * @param columns 表示柱子，值表示某个柱子可跳的最大距离
     * @param target 目标长度
     * @return 是否可以跳到目标长度
     * */
    public static boolean canTouchTarget(int[] columns, int target) {
        // 当前最远能跳到的距离
        int maxDistance = 0;
        for (int i = 0; i < columns.length; i++) {
            // 如果当前位置超过最远距离，说明当前位置已经跳不到了
            if (i > maxDistance) {
                return false;
            }
            // 当前位置可以跳到的情况下，更新可以跳到的最远距离
            maxDistance = Math.max(maxDistance, i + columns[i]);
        }
        return maxDistance >= target;
    }

    public static void main(String[] args) {
        int[] columns = {2, 5, 1, 1, 7, 2, 0};
        int target = 7;
        System.out.println(canTouchTarget(columns, target));
    }
}
